package simple.string;

/**
 * <a href="https://leetcode.cn/problems/second-largest-digit-in-a-string/">1796. 字符串中第二大的数字</a>
 * 给你一个混合字符串 s ，请你返回 s 中 第二大 的数字，如果不存在第二大的数字，请你返回 -1 。
 * 混合字符串 由小写英文字母和数字组成。
 * 示例 1：
 *   输入：s = "dfa12321afd"
 *   输出：2
 *   解释：出现在 s 中的数字包括 [1, 2, 3] 。第二大的数字是 2 。
 * 示例 2：
 *   输入：s = "abc1111"
 *   输出：-1
 *   解释：出现在 s 中的数字只包含 [1] 。没有第二大的数字。
 * 提示：
 *   1 <= s.length <= 500
 *   s 只包含小写英文字母和（或）数字。
 * @author 刘学松
 * @date 2023-08-25 13:55
 */
public class 字符串中第二大的数字 {
    public int secondHighest(String s) {
        int max = -1, min = -1;
        for (int i = 0; i < s.length(); i++) {
            int n = s.charAt(i)-'0';
            if (n >= 0 && n<=9) {
                if (n > max) {
                    min = max;
                    max = n;
                } else if (n < max && n > min) {
                    min = n;
                }
            }
        }
        return min;
    }
}
